1. Field of the Invention
The present invention relates to a file system, and more particularly, to a real-time remote file system, used in an environment in which a server storing a file and a plurality of clients performing file manipulation are connected to one another through a network, for each of the clients accessing the server through the network and performing file manipulation in real time.
2. Description of the Background Art
A file system is software for performing file manipulation such as file creation and file reading/writing with respect to a recording disk in response to a request from an application, and is generally provided as one function of an operating system (hereinafter referred to as OS). Particularly, a system applied to a client server system for performing file manipulation through a network from a client side with respect to a recording disk on a server side is referred to as a remote file system.
FIG. 31 is a block diagram showing the configuration of a client server system to which a conventional remote file system is applied.
In FIG. 31, the client server system comprises a file server 3102 and a plurality of clients 3101. The file server 3102 and the plurality of clients 3101 are connected to one another through a network 3103. The file server 3102 and the plurality of clients 3101 are respectively realized by computer devices. The network 3103 is realized by a wire network such as ATM or Ethernet or a wireless network such as W-CDMA.
FIG. 32 is a block diagram showing the functional configuration of the conventional remote file system (in a case where it is applied to the client server system shown in FIG. 31).
In FIG. 32, a conventional remote file system (hereinafter merely referred to as file system) 3201 is a part of an OS 3203 for preparing an environment in which an application 3202 operates on the computer device realizing the client 3101, and comprises a file management part 3204, a file reading part 3205, and a file writing part 3206. An application program interface (hereinafter, API) 3207 is provided between the application 3202 and the OS 3203.
The application 3202 requests file manipulation such as file creation and file writing/reading. The API 3207 converts the format of the request from the application 3202 into a format adapted to the OS 3203. The OS 3203 feeds the request whose format has been converted by the API 3207 to the file system 3201, and the file system 3201 performs file manipulation through the network 3103 with respect to the file server 3102 in response to the fed request.
In the file system 3201, the file management part 3204 judges the type of the request fed to the file system 3201. If the request is judged as being a file creation request, the file management part 3204 creates a file on a recording disk of the file server 3102, and generates attribute information (described later) of the file. On the other hand, if the request is a file reading request, the file management part 3204 reads out the attribute information from the file server 3102 and feeds the attribute information together with the file reading request to the file reading part 3205, while reading out, if the request is a file writing request, the attribute information from the file server 3102 and feeds the attribute information together with the file writing request to the file writing part 3206.
The file reading part 3205 refers to the fed attribute information in response to the fed request to perform file reading out of the file server 3102 through the network 3103. The file writing part 3206 refers to the fed attribute information in response to the fed request to perform file writing into the file server 3102 through the network 3103.
A typical example of the above-mentioned conventional remote file system is a remote file system of Windows NT (Registered Trademark) which is an OS manufactured by Microsoft (Registered Trademark) Corporation. The Windows NT, its remote file system, Win32API which is its standard API, and so forth are described in detail in xe2x80x9cADVANCED WINDOWS NTxe2x80x9d issued by xe2x80x9cASCII Co., Ltd.xe2x80x9d, written by xe2x80x9cJeffrey Richterxe2x80x9d and translated by xe2x80x9cKei Umehara/Shinji Suzuki/Takahiro Nagaoxe2x80x9d and xe2x80x9cComment on Complete Technology of Windows NT 3.5xe2x80x9d (ISBN4-8227-1005-X) issued by xe2x80x9cNikkei BP Publishing Centerxe2x80x9d and written by xe2x80x9cTakuya Oikawa, et.alxe2x80x9d.
Examples of the above-mentioned application 3202 include a non-linear editing application handling moving image data as a file (a moving image file) for editing the moving image file using a computer device.
The file manipulation performed through the network 3103 by the conventional remote file system 3201 configured as described above will be described below.
First, the application 3202 requests the file manipulation. At this time, the file manipulation request issued by the application 3202 includes information for designating a file to be an object of manipulation and the type of the file manipulation (any of file creation, file reading, and file writing).
The API 3207 then converts the format of the file manipulation request from the application 3202 into a format adapted to the OS 3203. The OS 3203 then feeds the request whose format has been converted by the API 3207 to the file system 3201. The file system 3201 then performs file manipulation through the network 3103 with respect to the file server 3102 in response to the fed request.
FIG. 33 is a flow chart showing processing (file manipulation) that the remote file system 3201 shown in FIG. 32 performs through the network 3103 upon being applied to the client server system shown in FIG. 31.
In FIG. 33, the file management part 3204 first judges whether or not a file manipulation request is fed to the file system 3201 (step S3301). The file management system 3204 waits if the result of the judgment is negative, while judging whether or not the request fed to the file system 3201 is a file creation request if it is affirmative (step S3302). When the result of the judgment at the step S3302 is affirmative, the procedure goes to the step S3307.
When the result of the judgement at the step S3302 is negative, the file management part 3204 reads out attribute information from the file server 3012 through the network 103 (step S3303), and then retrieves a file to be an object of manipulation (reading or writing) on the basis of a file name and a directory which are included in the attribute information read out (step S3304).
Thereafter, the file management part 3024 judges whether or not the request fed to the file system 3201 is a file writing request (step S3305).
If the result of the judgment at the step S3305 is negative, that is, the request is a reading request, the file reading part 3205 performs file reading (step S3306). Thereafter, the procedure goes to the step S3309.
The file read out at the step S3306 is stored once in an area managed by the file system 3201, and is then delivered to the application 3202 (i.e., is copied on a buffer area on the side of the application 3202).
On the other hand, if the result of the judgment at the step S3305 is affirmative, that is, the request is a writing request, the file writing part 3206 performs file writing (step S3308). Thereafter, the procedure goes to the step S3309.
At the step S3307, a file is created, and attribute information of the file (which shall be a moving image file herein) is generated. The generated attribute information, together with the moving image file, is stored in the recording disk of the file server 3102.
At the step S3309, it is judged whether or not the operation of the file system 3201 is terminated. If the result of the judgment is negative, the program is returned to the step S3301, so that the same processing as described above is repeated. On the other hand, if the result of the judgment is affirmative, the operation is terminated.
The file reading processing at the step S3306 is performed in the following manner.
When an attempt to read out a certain file is made, the application 3202 divides the file into a plurality of blocks (a reading minimum unit) of a predetermined size, and issues respective requests to read out the blocks (hereinafter referred to as block reading request) in order. The block reading request is fed to the file reading part 3205 through the OS 3203 after the format thereof is converted by the API 3207. Correspondingly, the file reading part 3205 reads out the blocks constituting the file in order.
FIG. 34 is a timing chart showing an example of timing at which the application 3202 shown in FIG. 32 issues a file reading request and a series of block reading requests in the case of file reading (in the case of xe2x80x9csynchronousxe2x80x9d reading).
As shown in FIG. 34, the application 3202 issues the file reading request (described above), and then starts processing for issuing the block reading requests in order. In the case, it issues a request to read out a certain block, and then issues, upon waiting until the block is completely read out, a request to read out the subsequent block.
There is also an application for performing not xe2x80x9csynchronousxe2x80x9d reading as shown in FIG. 34 but xe2x80x9casynchronousxe2x80x9d reading. However, judgment whether the application performs xe2x80x9csynchronousxe2x80x9d reading or xe2x80x9casynchronousxe2x80x9d reading is not directly related to the essence of the present invention. Therefore, description is now made, assuming that the application 3202 issues the reading request in the procedure as shown in FIG. 34.
The file writing processing at the step S3308 is also performed in units of blocks in the same manner as described above.
Random access to the recording disk can be made by performing the file reading/writing in units of blocks (this is indispensable for editing processing of the moving image file). Moreover, it is possible to save the capacity of a buffer temporarily storing a file read out.
The file reading/writing at the steps S3306/S3308 shown in FIG. 33 are performed utilizing a vacant bandwidth which is not used by the other systems (for example, other file systems and communication systems) in a bandwidth for the network 3103.
In the client server system as shown in FIG. 31, therefore, if the other systems use a lot of bandwidths, a bandwidth used by the file system 3201 is decreased. Even in a case where the bandwidth used by the file system 3201 is fixed, if the plurality of clients 3101 simultaneously perform file reading/writing, the bandwidth per client 3101 is decreased. Further, even in a case where the bandwidth used by each of the clients 3101 is fixed, if the client 3101 simultaneously performs reading/writing of a plurality of files, the bandwidth per file is decreased.
On the other hand, the smaller a bandwidth for file reading/writing is, the smaller a transmission bandwidth becomes. As a result, reading delay/writing delay are increased. In the conventional remote file system 3201, therefore, it is difficult to handle a moving image file requiring real-time properties for recording and reproduction.
The bandwidth means the maximum amount of data which can be transmitted per unit time. When the network 3103 is compared to a water pipe, for example, the thickness thereof (i.e., the cross-sectional area of the pipe) corresponds to the bandwidth for the network 3103.
On the other hand, the transmission bandwidth means the amount of data which is transmitted per unit time when file reading and file writing are performed. For example, the amount of water flowing in the water pipe per unit time corresponds to a transmission bandwidth in a case where data transmission is made utilizing the network 3103. The reading delay means a time period required from the time when the application 3202 issues a request to read out a certain block until the block is read out of the recording disk and is delivered to the application 3202.
Therefore, a file system applied to the client server system as shown in FIG. 31 and making it possible for the client 3101 to access the file server 3102 through the network and perform file reading/file writing in real time is desired. Such a file system is referred to as a real-time remote file system. The definition of the real time referred to herein will be clarified later.
The following two techniques are known as the prior art useful for realizing the real-time remote file system.
The first is a bandwidth assurance technique which is disclosed in Japanese Patent Laying-Open No. 10-111761. The technique is a technique for always ensuring, even if a plurality of clients 3101 simultaneously perform file reading/writing, and one of the clients 3101 simultaneously performs reading/writing of a plurality of files, only a predetermined bandwidth for each of the clients and a predetermined bandwidth for each of the files. If the technique is used, it is possible to prevent the transmission bandwidth from the file server 3102 to the client 3101 and the transmission bandwidth in a case where the file reading/writing are performed from being decreased. As a result, delay time can be ensured, that is, reading delay and writing delay can fall within a predetermined time period with a sufficiently high probability.
The second is a prefetching technique. The prefetching means, assuming that the order in which a plurality of blocks constituting a file are read out is previously determined, processing for reading out, when a request to read out the head block is received from the application 3202 (or at the time point where the file to be read out is designated), not only the head block but also a predetermined number of blocks to be read out subsequently to the head block (i.e., before receiving the request from the application 3202).
The performance of the prefetching allows, at the time point where the application 3202 issues a request to read out the subsequent block, the block to have already been read out of the recording disk and stored in a buffer of the file system 3201. Therefore, it is possible to conceal reading delay. Such prefetching is disclosed in Japanese Patent Laying-Open No. 9-284343, for example.
It can be expected that a real-time remote file system can be realized by thus using the conventional bandwidth assurance technique and prefetching technique for the remote file system 3201 shown in FIG. 32. The reason for this is that it is assured that reading delay/writing delay fall within not more than a predetermined value, so that the reading delay can be concealed if the prefetching technique is further used.
However, the real-time remote file system has the following problems.
(1) As a result of bandwidth assurance, effective utilization of a bandwidth may, in some cases, be prevented. For example, a bandwidth assured for reading a certain file becomes a vacant bandwidth in a time period during which the file is not read out.
The occurrence of the vacant bandwidth decreases the utilization efficiency of limited bandwidth sources, and consequently increases delay time.
In order to solve the above-mentioned problem, the vacant bandwidth may be effectively utilized. For example, a method of utilizing a vacant bandwidth occurring in an assured bandwidth for a certain file to transmit data representing another file is considered.
(2) However, the transmission bandwidth of the other file is exceeding the assured bandwidth, so that reading delay may be insufficiently concealed. The reason for this is that the conventional prefetching technique presupposes that a transmission bandwidth is not more than an assured bandwidth, that is, transmission is made within the range of the assured bandwidth.
All the problems are related to xe2x80x9cbandwidthxe2x80x9d. In order to realize a real-time remote file system in which the problems are solved, the following problem must be first solved.
That is, all the conventional file systems have no function relating to xe2x80x9cbandwidthxe2x80x9d.
For example, the assured bandwidth set in the conventional file system is fixed. Even if a request to set another assured bandwidth is received from an application, therefore, the conventional file system cannot even recognize the request. It is considered that at least a function to perform bandwidth setting in response to the request from the application is indispensable.
Therefore, an object of the present invention is to realize a file system capable of performing bandwidth setting.
Another object of the present invention is to realize a real-time remote file system by organically coupling a bandwidth setting function to a bandwidth assurance technique and a prefetching technique.
In order to attain the above-mentioned objects, the present invention has the following features.
A first aspect of the present invention is directed to a file system for performing file reading and/or file writing out of and/or into a data storage part storing a file upon receipt of a file reading request and/or a file writing request issued by an application, wherein
the application further issues a bandwidth setting request, the file system comprising:
a file reading part for performing file reading out of the data storage part in response to the file reading request from the application;
a file writing part for performing file writing into the data storage part in response to the file writing request from the application;
a first transmission bandwidth control part for controlling a transmission bandwidth used for data transmission from the file writing part to the data storage part in the case of the file writing;
a second transmission bandwidth control part for controlling the transmission bandwidth used for data transmission from the data storage part to the file reading part in the case of the file reading; and
a bandwidth setting part for performing bandwidth setting for the first transmission bandwidth control part and/or the second transmission bandwidth control part in response to the bandwidth setting request from the application.
According to the first aspect, the file system capable of setting bandwidths for file writing and file reading in response to the requests from the application is realized.
A second aspect is characterized in that in the first aspect,
the bandwidth setting part sets a standard bandwidth and the type of bandwidth assurance when the bandwidth setting is performed,
the type of bandwidth assurance includes maximum bandwidth assurance for assuring the standard bandwidth as the maximum bandwidth, and
the first transmission bandwidth control part and/or the second transmission bandwidth control part carry out, when the maximum bandwidth assurance is set, such transmission bandwidth control that even if there is a vacant bandwidth, data is transmitted using only the assured standard bandwidth.
According to the second aspect, the bandwidths for file writing and file reading are assured, thereby making it possible to prevent the transmission bandwidth from being decreased in performing the file reading and the file writing. As a result, delay time can be assured, that is, reading delay and writing delay can fall within a predetermined time period with a sufficiently high probability.
A third aspect is characterized in that in the second aspect,
the type of bandwidth assurance further includes minimum bandwidth assurance for assuring the standard bandwidth as the minimum bandwidth, and
the first transmission bandwidth control part and/or the second transmission bandwidth control part carry out, when the minimum bandwidth assurance is set, such transmission bandwidth control that if there is a vacant bandwidth, data is transmitted using not only the assured standard bandwidth but also the vacant bandwidth.
In the third aspect, when the minimum bandwidth assurance is set, data transmission is made using the vacant bandwidth occurring when the maximum bandwidth assurance is set, thereby making it possible to effectively utilize the bandwidth.
Supplementary explanation will be given. For example, when the maximum bandwidth assurance is set for a certain file, the standard bandwidth is ensured (as a bandwidth dedicated to the file). If a data transmission bandwidth relating to the file (the amount of data transmitted per unit time) is decreased, therefore, a vacant bandwidth occurs in the standard bandwidth. The vacant bandwidth is utilized for data transmission relating to a file for which the minimum bandwidth assurance is set.
A fourth aspect is characterized in that in the third aspect,
the type of bandwidth assurance further includes such bandwidth unassurance that no bandwidth is assured, and
the first transmission bandwidth control part and/or the second transmission bandwidth control part carry out, when the bandwidth unassurance is set, such transmission bandwidth control that if there is a vacant bandwidth, data is transmitted using the vacant bandwidth.
According to the fourth aspect, the bandwidth can be more flexibly utilized.
A fifth aspect is characterized in that in the third aspect, the first transmission bandwidth control part and/or the second transmission bandwidth control part distribute, when the transmission bandwidth control is carried out, the vacant bandwidth among transmission data corresponding to the minimum bandwidth assurance depending on the standard bandwidth.
According to the fifth aspect, the bandwidth can be more efficiently utilized.
A sixth aspect is characterized in that in the fourth aspect, the first transmission bandwidth control part and/or the second transmission bandwidth control part uniformly distribute, when the transmission bandwidth control is carried out, the vacant bandwidth among the transmission data.
According to the sixth aspect, processing for distributing the vacant bandwidth is simply performed.
A seventh aspect is characterized in that in the fourth aspect, the first transmission bandwidth control part and/or the second transmission bandwidth control part distribute, when the transmission bandwidth control is carried out, the vacant bandwidth among transmission data corresponding to the minimum bandwidth assurance in preference to transmission data corresponding to the bandwidth unassurance.
In the seventh aspect, it is possible to reduce the possibility that delay occurs with respect to the file for which the minimum bandwidth assurance is set, for example.
An eighth aspect is characterized in that in the fourth aspect, the first transmission bandwidth control part and/or the second transmission bandwidth control part carry out, when the transmission bandwidth control is carried out, the control also in consideration of the state of a transmission buffer.
According to the eighth aspect, it is possible to prevent the utilization efficiency of the vacant bandwidth from being decreased due to lack of the transmission buffer.
A ninth aspect is characterized in that in the fourth aspect, the first transmission bandwidth control part and/or the second transmission bandwidth control part carry out, when the transmission bandwidth control is carried out, the control also in consideration of the state of a receiving buffer at a destination of transmission.
According to the ninth aspect, it is possible to prevent the utilization efficiency of the vacant bandwidth from being decreased due to lack of the receiving buffer.
A tenth aspect is characterized in that in the first aspect,
the bandwidth setting part further performs the bandwidth setting also for the file reading part, and
the file reading part comprises:
a prefetching control part for prefetching a predetermined amount of data which is not requested by the application when the file reading is performed; and
a prefetching buffer management part for managing a prefetching buffer in which prefetched data is temporarily stored, and
the prefetching control part determines the amount of data to be prefetched on the basis of the bandwidth set by the bandwidth setting part.
In the tenth aspect, data in an amount corresponding to the bandwidth is prefetched. Even if the bandwidth is changed by the bandwidth setting, therefore, it is possible to conceal reading delay.
An eleventh aspect is characterized in that in the third aspect,
the bandwidth setting part further performs the bandwidth setting also for the file reading part,
the file reading part comprises:
a prefetching control part for prefetching a predetermined amount of data which is not requested by the application when the file reading is performed; and
a prefetching buffer management part for managing a prefetching buffer in which prefetched data is temporarily stored, and
the prefetching control part determines the amount of data to be prefetched on the basis of the product of the standard bandwidth set by the bandwidth setting part and maximum delay time previously calculated.
According to the eleventh aspect, data in an amount determined by the product of the standard bandwidth assured (as the maximum bandwidth) and the maximum delay time is prefetched, thereby making it possible to conceal reading delay with a high probability.
A twelfth aspect is characterized in that in the eleventh aspect, the maximum delay time is time calculated such that the probability that reading delay above the time occurs is considerably reduced.
According to the twelfth aspect, data in an amount determined by the product of the standard bandwidth assured (as the maximum bandwidth) and the assured maximum delay time is prefetched, thereby making it possible to conceal reading delay with a high probability.
A thirteenth aspect is characterized in that in the eleventh aspect,
the file reading part further comprises a prefetching amount control part for controlling the amount of data to be prefetched, and
the prefetching amount control part carries out, when the minimum bandwidth assurance is set, control such that the amount of data to be prefetched is not less than an amount determined by the prefetching control part when the transmission bandwidth corresponding to the reading request from the application exceeds the standard bandwidth.
In the thirteenth aspect, even when the minimum bandwidth assurance is set, the amount of prefetching follows variations in the transmission bandwidth, thereby making it possible to conceal reading delay.
A fourteenth aspect is characterized in that in the thirteenth aspect, the prefetching buffer management part carries out prefetching amount control on the basis of situations where the prefetching buffer managed by the buffer management part is employed.
A fifteenth aspect is characterized in that in the thirteenth aspect,
the prefetching buffer management part monitors the amount of data to be prefetched which is stored in the prefetching buffer, and reports the result of the monitoring to the prefetching amount control part as the amount of use of the prefetching buffer, and
the prefetching amount control part carries out the prefetching amount control on the basis of the reported amount of use of the prefetching buffer.
A sixteenth aspect is characterized in that in the fifteenth aspect, the prefetching amount control part compares the reported amount of use of the prefetching buffer with a previously determined threshold, and increases or decreases the amount of data to be prefetched in relation to the result of the comparison.
In the fourteenth to sixteenth aspects, the prefetching buffer for storing the prefetched data is utilized for the prefetching amount control. For example, the amount of data to be prefetched in the prefetching buffer is monitored. On the other hand, a total of four thresholds, that is, a threshold at which prefetching amount increase processing is started, a threshold at which the processing is terminated, a threshold at which prefetching amount decrease processing is started, and a threshold at which the processing is terminated are determined, and the amount of the prefetched data in the prefetching buffer is compared with each of the thresholds, to increase or decrease the amount of data which will be prefetched.
A seventeenth aspect is characterized in that in the thirteenth aspect, the buffer management part manages the prefetching buffer upon dividing the prefetching buffer into a basic area corresponding to the standard bandwidth and a shared area corresponding to a vacant area other than the standard bandwidth.
According to the seventeenth aspect, such inconvenience that when the maximum bandwidth assurance is set for a certain file, and the minimum bandwidth assurance is set for another file, for.example, the vacant bandwidth is used for reading out the latter file, so that the remaining capacity of the buffer is decreased, resulting in malfunction in the maximum bandwidth assurance is prevented.
An eighteenth aspect is characterized in that in the seventeenth aspect, the size of the shared area is not less than the size of the basic area.
According to the eighteenth aspect, the following inconvenience is prevented: that is, such inconvenience that in a case where the shared area is smaller than the basic area, even if there is a vacant bandwidth, the prefetching amount control becomes unstable due to lack of the buffer, resulting in decreased utilization efficiency of the vacant bandwidth.
A nineteenth aspect is characterized in that in the seventeenth aspect, the size of the shared area is not less than N (N is an arbitrary integer of two or more) times the size of the basic area.
According to the nineteenth aspect, even if (Nxe2x88x921) files for which the minimum bandwidth assurance is set are simultaneously being subjected to prefetching amount decrease processing, the utilization efficiency of the vacant bandwidth can be prevented from being decreased in another file for which the minimum bandwidth assurance is set.
A twentieth aspect is characterized in that in the tenth aspect, the prefetching control part changes, when reading is started at a position different from the head of a file, the position where prefetching is performed into a position, where prefetching has not been performed yet, ahead of a position designated by the application, and starts the prefetching at the position.
According to the twentieth aspect, in starting the reading from the middle of the file, the data which has already been read out is prevented from being uselessly prefetched again.
A twenty-first aspect is characterized in that in the tenth aspect,
when high-speed reproduction for intermittently reading out data in the file is performed, the prefetching control part
determines the position where prefetching is performed on the basis of a request from the application, the size of a data area in the file and the direction of reading, and
intermittently performs prefetching, starting at the determined position.
According to the twenty-first aspect, prefetching can be performed even in the case of high-speed reproduction.
A twenty-second aspect is characterized in that in the tenth aspect,
when backward reproduction is performed upon switching the direction of reproduction from a forward direction to a backward direction, the prefetching control part
detects that the direction of reproduction is changed from the forward direction to the backward direction on the basis of the positional relationship in the file between data which has been requested to read out this time and data which was requested to read out last time, and
switches, when it detects that the direction of reproduction is changed from the forward direction to the backward direction, the direction in which prefetching is performed from the forward direction to the backward direction, and changes the position where prefetching is performed into a position, where prefetching has not been performed yet, in a direction opposite to the position, and starts the prefetching in the opposite direction at the position.
A twenty-third aspect is characterized in that in the twenty-second aspect, the prefetching control part holds data in the opposite direction, whose amount is the same as the amount of data to be prefetched, in preparation for a case where backward reproduction is performed upon switching the direction of reproduction from the forward direction to the backward direction.
According to the twenty-second and twenty-third aspects, even in the case of the backward reproduction, the prefetching can be performed. Moreover, in the case, the data which has already been read out is prevented from being uselessly prefetched again.
A twenty-fourth aspect is characterized in that in the fourth aspect, the first transmission bandwidth control part and/or the second transmission bandwidth control part calculate, when the minimum unit of data requested by the application and the minimum unit of data handled by the data storage part differ from each other, a real bandwidth actually required on the basis of the two minimum units, and carry out the transmission bandwidth control using the real bandwidth in place of the standard bandwidth.
According to the twenty-fourth aspect, even if the minimum unit of the data requested by the application and the minimum unit of the data handled by the data storage part differ from each other, it is possible to carry out the transmission bandwidth control.
A twenty-fifth aspect is characterized in that in the first aspect, the file system further comprises:
a first API (Application Program Interface; the same is true for the following) for converting the file reading request and/or the file writing request from the application into a format suitable for the file reading part; and
a second API for converting the bandwidth setting request from the application into a format corresponding to the bandwidth setting part.
According to the twenty-fifth aspect, the API for bandwidth setting (the second API) is added (as extended API) while using the same API (the first API) as that in the existing file system, thereby making it possible to reduce the development cost of the file system.
A twenty-sixth aspect is characterized in that in the first aspect, the file system further comprises:
a file management part for managing the file stored in the data storage part on the basis of attribute information representing the attribute of the file; and
an attribute information management part for managing the attribute information.
According to the twenty-sixth aspect, the file management and the management of the attribute information can be performed.
A twenty-seventh aspect is characterized in that in the twenty-sixth aspect, the attribute information includes initialization information relating to the bandwidth setting performed by the bandwidth setting part.
According to the twenty-seventh aspect, the initialization information (a default) relating to the bandwidth setting is managed as one of the attribute information. Even when an application having no function of issuing the bandwidth setting request is used, therefore, the transmission bandwidth control can be carried out while referring to the default.
A twenty-eighth aspect is characterized in that in the thirteenth aspect,
the data storage part is realized by a file server connected to a network,
the file reading part performs the file reading out of the file server through the network, and
the file writing part performs the file writing into the file server through the network.
According to the twenty-eighth aspect, as a result of the assurance of the maximum delay time, a real-time remote file system applied to a client server system through a network, that is, a file system capable of performing reading and writing out of and into a file server through a network in real time is realized.
Such a file system produces the greatest effect when it is used in a network environment. However, it goes without saying that it may be used in an environment without through the network. The reason for this is that reading delay and writing delay occur not only in the case of network transmission but also in making random access to the recording disk, for example.
A twenty-ninth aspect is characterized in that in the twenty-eighth aspect, the bandwidth setting part further sets a bandwidth for the network.
In the twenty-ninth aspect, when the network has a transmission bandwidth control function, it is possible to also control the bandwidth for the network.
A thirtieth aspect is characterized in that in the twenty-eighth aspect, the bandwidth setting part performs bandwidth setting for the network such that one connection in the network is assigned to one file.
According to the thirtieth aspect, the bandwidth control for the file can be simply carried out.
A thirty-first aspect is characterized in that in the twenty-eighth aspect, the bandwidth setting for the network is performed such that one connection in the network is assigned to a plurality of files.
According to the thirty-first aspect, one connection in the network is shared among the plurality of files, so that the effect produced by the bandwidth control becomes more significant.
A thirty-second aspect is characterized in that in the first aspect, the bandwidth setting part performs the bandwidth setting for each file.
In the thirty-second aspect, the bandwidth setting is performed for each file (i.e., for each of the files into and out of which writing and reading are to be performed), thereby making it possible to set a bandwidth suitable for the file.
A thirty-third aspect is characterized in that in the twenty-sixth aspect, the bandwidth setting part performs the bandwidth setting for group of files classified on the basis of their attributes.
In the thirty-third aspect, the bandwidth setting is performed for each group of files (i.e., for each of groups each comprising files having a common attribute), thereby making it possible to set a bandwidth suitable for the attribute. As a simple example, a large bandwidth is set for a xe2x80x9cmoving imagexe2x80x9d file, while a small bandwidth is set for a xe2x80x9cdocumentxe2x80x9d file.
A thirty-fourth aspect is characterized in that in the twenty-eighth aspect,
clients transmitting and receiving data to and from the file server through the network are connected to the network, and
the bandwidth setting part performs the bandwidth setting for each of the clients.
According to the thirty-fourth aspect, the bandwidth setting is performed for each client (i.e., for each of clients performing reading and writing out of and into the file server through the network), thereby making it possible to set a bandwidth suitable for the client. As a simple example, a large bandwidth is set for a non-linear editing machine handling a moving image, while a small bandwidth is set for a general terminal.
These and other objects, features, aspects and advantages of the present invention will become more apparent from the following detailed description of the present invention when taken in conjunction with the accompanying drawings.